/** * */ package utility; import java.io.File; import java.io.IOException; import java.util.logging.FileHandler; import java.util.logging.Handler; import java.util.logging.Level; import java.util.logging.LogRecord; import java.util.logging.Logger; import java.util.logging.SimpleFormatter; import system.JPregelConstants; /** * A generic logger that creates java.util.logger objects based on the ID of the * consuming class * * @author Manasa Chandrasekhar * @author Kowshik Prakasam * */ public class JPregelLogger { public static Logger getLogger(String classId, String logFile) throws IOException { File logDir = new File(JPregelConstants.LOG_DIR); if (!logDir.exists() && !logDir.mkdirs()) { throw new IOException("Can't create root log dir : " + JPregelConstants.LOG_DIR); } Logger aLogger = Logger.getLogger(classId); aLogger.setUseParentHandlers(false); Handler logHandle = null; try { logHandle = new FileHandler(logFile); } catch (SecurityException e) { System.err.println("Can't init logger in " + classId); e.printStackTrace(); } catch (IOException e) { System.err.println("Can't init logger in " + classId); e.printStackTrace(); } logHandle.setFormatter(new SimpleFormatter()); aLogger.addHandler(logHandle); aLogger.info("init " + classId + " Logger successful"); if (!classId.equals("Master") && !classId.startsWith("Fault")) { aLogger.setLevel(Level.SEVERE); } return aLogger; } }